#基础镜像
#FROM python:3.8.13-buster


#因为依赖安装太慢了，因此把依赖单独下载好打包在一个镜像中，这里直接可以使用那个镜像来进行二次打包。
#那个名为cd-system:base的镜像中只安装了pip依赖和对应的debian基础依赖，别的啥都没做，在这里可以覆盖式安装，也可以啥都不装
FROM harbor.zmlearn.com/cd/cd_base:20220909_143528


ARG env
ENV env=${env:-pro}


#该项目依赖的环境变量
ENV DJANGO_SETTINGS_MODULE=d_boy.settings.${env}


#不缓冲stdin、stdout、stderr
ENV PYTHONUNBUFFERED 1


#创建相关目录，并把镜像中关键目录里的内容都清空
RUN mkdir -p /code \
    && rm -rf /code/* \
    && mkdir -p /code/deploy/run \
    && mkdir -p /code/deploy/logs \
    && mkdir -p /run/nginx \
    && mkdir -p /etc/default



#指定工作目录
WORKDIR /code
ADD . /code

#部署相关（安装nginx、复制nginx配置文件、复制celery配置文件、并收django集静态文件）
RUN sed -i '/include\ \/etc\/nginx\/conf.d\/\*.conf;/a include\ \/code\/deploy\/templates\/nginx_to_uwsgi.conf;' /etc/nginx/nginx.conf \
    && echo "daemon off;"  >>  /etc/nginx/nginx.conf \
    && mv -f /etc/supervisor/supervisord.conf                /etc/supervisor/supervisord.conf.bak \
    && mv -f /code/deploy/templates/supervisord.conf      /etc/supervisor/supervisord.conf \
    && python manage.py collectstatic

#允许外界访问容器的8080端口
EXPOSE 8080

#容器启动时触发的命令（使用这种方式让sup挂在前台执行）
ENTRYPOINT ["supervisord", "-n"]


